Extensions在swift中的功能很強大,因為它可以重新組織你的程式碼。使用Extensions將function加到現有的class, structure, enumeration or protocol type。即使無法修改原始的程式碼,也可以使用它來幫class增加新功能。
class Car {
var length: Int = 0
func countLength(cm: Int) {
length = cm
}
}
extension Car {
func countLength(meter: Int) {
length = meter
}
}
在swift compile時,所定義的Extensions會加到本來的class中,會與原本的合併為同一個,所以會使用到後面Extension的新功能
Extensions可以做到的事情
Extensions不能修改基本結構,只能添加function,無法將新的property添加到現有的property。
Extension的實際運用的好處